The present invention relates generally to an information management systems implemented by a computer and, more particularly, to a system for maintaining data objects stored in memory.
Upcoming communication devices, such as a personal digital assistants (PDA), combine the features of a mobile telephone and computer. These devices are designed to support communications and interactions among users. One way in which these devices facilitate interactions among users is by storing information about persons or entities with whom the user interacts. One simple example would be an address book that lists the telephone number and address for each contact. Such information can be stored in virtual business cards. In emerging communication devices, users have the ability to exchange virtual business cards among themselves. Thus, a user can accumulate a large number of business cards.
The accumulation of cards by a user presents several problems. First, the user may accumulate cards that, over time, become unimportant. In devices with limited memory, a card that is not actively used consumes precious memory. Secondly, the information contained in a business card may change over time so that the information becomes no longer reliable. There is not currently any method to identify stale or unused business cards so that they can be removed.
One way to manage business cards is for the user to manually remove those cards that become stale or uninteresting. Unfortunately, this method requires the user to take time to periodically review and remove unwanted cards. For the above reasons, relying on the user to purge records manually is not a good solution to the problem. Another technique for removing contacts is to remove each contact that has not been accessed within a certain time period, such as one month. However, this simplistic approach treats all contacts as having the same aging process, which is typically not the case. Contacts that are never accessed should become candidates for removal much sooner than files in which there is some kind of infrequent access.
Thus, there is a need for further improvements in information management software to make it easier and less cumbersome to update and maintain a database of contact information.
The present invention is a method for maintaining card objects in a computer system. According to the present invention, a plurality of card objects are stored in the memory of a computer. Each card object includes a field for storing a reference date. Each card object further includes one or more time constant fields for storing time estimates. The disclosed embodiment includes two time estimatesxe2x80x94the freshness estimate and the interestingness estimate. The freshness estimate is an estimate of the length of time that the data contained in the card object is expected to remain reliable or fresh since the date that it was last accessed. The interestingness estimate indicates the length of time that the card object is expected to remain relevant or interesting to the user from the date that it was last accessed.
When a card object in the database is accessed, an update procedure is invoked. The purpose of the update procedure is to update the freshness and interestingness estimates based upon a predetermined rule set. More particularly, the freshness estimate is increased when a new version of the card object is obtained and the elapsed time since the card object was last accessed is greater than the current freshness estimate. The freshness estimate is decreased when the data contained in the card object is unchanged and the elapsed time since the card object was last accessed is less than the current freshness estimate. The interestingness estimate is increased when the elapsed time since the card object was last accessed is greater than the current interestingness estimate.
A separate maintenance procedure is periodically invoked to iterate through all of the card objects in the database and to remove those card objects deemed to be stale or uninteresting. Further, this maintenance procedure may be invoked when available memory is running low. A card object is deemed to be stale if the elapsed time since the date on which the card object was last accessed is greater than the current freshness estimate. A card object is deemed to be uninteresting if the elapsed time since the card object was last accessed is greater than the current interestingness estimate. The preferred method for removing a card object is by moving it to a data archive. If the card object is subsequently requested, it can be restored to active memory.
Using the method of the present invention, stale or irrelevant objects can be moved from memory and archived automatically without human intervention. This method frees up memory for objects which are used most frequently, while less frequently used objects are stored in an archive. This invention is particularly useful in those situations where the primary memory for storing objects is somewhat limited. Stale and irrelevant objects can be moved from primary memory to a data archive and recalled when needed. The present invention also increases the speed of look-ups by reducing the number of objects in the memory.